package com.lonely.fx.choice_box;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.ChoiceBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.util.StringConverter;

/**
 * @date: 2022-07-17 17:51
 * @author: ztkj-hzb
 * @description: 基础数据类型 基础属性设置
 **/
public class ChoiceBoxSettingMain extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    /**
     *
     */
    @Override
    public void start(Stage primaryStage) throws Exception {

        VBox vBox = new VBox();
        ChoiceBox<String> choiceBox = new ChoiceBox<>();

        choiceBox.getItems().addAll("篮球", "足球", "羽毛球");

        //注意，这里设置value的值，必须来自items中,设置为请选择无效
        //choiceBox.setValue("请选择");

        //选择模型,选择固定item值
        //choiceBox.getSelectionModel().select("篮球");

        //选择指定索引对应的item值
        //choiceBox.getSelectionModel().select(1);

        //选择第一个item
        choiceBox.getSelectionModel().selectFirst();

        //切换选项事件
        //choiceBox.valueProperty().addListener((observable, oldValue, newValue) -> System.out.println("newValue：" + newValue));

        //TODO: 切换选项事件----推荐用这个
        choiceBox.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> System.out.println("newvalue2:" + newValue));

        vBox.getChildren().add(choiceBox);
        primaryStage.setScene(new Scene(vBox));
        primaryStage.setWidth(600);
        primaryStage.setHeight(500);
        primaryStage.show();

    }
}
